package com.gxuwz.Market.business.service;


import java.util.List;

import com.gxuwz.Market.business.entity.ServiceAcademy;
import com.gxuwz.Market.business.entity.ServiceBranch;
import com.gxuwz.Market.business.entity.ServiceClass;
import com.gxuwz.Market.business.entity.ServiceMajor;
import com.gxuwz.Market.business.entity.ServiceStudio;
import com.gxuwz.Market.business.entity.SysUser;
import com.gxuwz.core.pagination.Result;

/**
 * <p>Title: 类名：用户-业务逻辑--接口</p>
 * <p>Description:mailsender-业务逻辑/n</p>
 * @author:	梧州学院 软件开发中心 庞光垚
 * @date:2015.07.31
 */
public interface ISysUserService {
	
	/**
	 * 根据用户编号查询用户对象
	 * @param userid 用户编号
	 * @return 用户对象
	 */
	public SysUser findByUserId(String userId);
	
	
	
	public List<SysUser> findUserByClassName(String name);
	public List<SysUser> findAll();
	
	/**
	 * 根据条件查找分页
	 * @param sysUser
	 * @param page
	 * @param row
	 * @return
	 */
	public Result<SysUser> find(SysUser sysUser,int page, int size);
	/**
	 * 根据字段值查找用户
	 * @param property
	 * @param value
	 * @return
	 */
	public List<SysUser> findByProperty(String property, String value);
	/**
	 * 添加
	 * @param sysUser
	 */
	public void add(SysUser sysUser);
	/**
	 * 删除
	 * @param sysUser
	 */
	public void delete(String userId);
	/**
	 * 修改
	 * @param sysUser
	 */
	public void update(SysUser sysUser);
	
	/**
	 * 用户登录
	 * @param sysUser 用户对象
	 * @return true -允许登录；false -不允许登录
	 */
	public boolean isLogin(SysUser sysUser);
	
	public List<String> findUserPermissions(String userId);

	
	/**
	 *查询所有的院系
	 * @author 黄森南
	 * @date 2018-1-25
	 * @return
	 */
	public List<ServiceAcademy> findAllAcademy();
	/**
	 *通过学院的Id查询学院的专业
	 * @author 黄森南
	 * @date 2018-1-25
	 * @return
	 */
	public List<ServiceMajor> findByAca_Id(String userCollege);
	/**
	 *通过专业的Id查询学院的班级
	 * @author 黄森南
	 * @date 2018-1-25
	 * @return
	 */
	public List<ServiceClass> findByMajorId(String userMajor);
	/**
	 *查找研究室
	 * @author 黄森南
	 * @date 2018-1-25
	 * @return
	 */
	public List<ServiceStudio> findStudio();
	/**
	 *查询用户信息
	 * @author 黄森南
	 * @date 2018-1-25
	 * @return
	 */

public Result findUser(int page,int row);

/**
 * 通过学院的Id查找学院
 * @author 黄森南
 * @date 2018-1-29
 * @return
 */

	public ServiceAcademy findAcayId(String academyId);

	/**
	 * 通过专业的Id查找用户的专业
	 * @author 黄森南
	 * @date 2018-1-25
	 * @return
	 */
public ServiceMajor findMajById(String majorId);
	

/**
 * 修改密码
 * @param userId
 * @param userPassword
 * @return
 */
public int updateUserPassWd(String userId,String userPassword);

/**
 * 检查用户是否重复
 * @param userId
 * @return
 */
	public boolean checkUserId(String userId);
	
	/**
	 * 检查密码
	 * @param rawPassword
	 * @param password
	 * @return
	 */
	public boolean checkPasswd(String rawPassword, String password);
	
	
	public void update(SysUser sysUser, String[] roleIds, String oldPassword);
    
	public List<SysUser> findSysUser(String academyName, String majorName, String ClassName ,String StudioName);
	
	public ServiceClass findClassInfoByClassId(String ClassId);
	
	public ServiceStudio findStudioByStudioId(String StudioId);
	
	public List<SysUser> findUser(String userId);

	public List<ServiceClass> findAllClass();
	
	/**
	 * 根据分类查找用户
	 * @param branchList
	 * @return
	 */
	public List<SysUser> findByBranch(List<ServiceBranch> branchList);
}
